#include <stdio.h>
#include <stdlib.h>

// 比较函数，用于qsort排序（升序）
// 参数为两个void指针，转换为int指针后比较值的大小
int compare(const void *a, const void *b) {
    return (*(int *)a - *(int *)b);
}

int main() {
    int n;
    // 输入魔杖（和盒子）的数量n
    scanf("%d", &n);
    
    // 定义数组存储魔杖长度和盒子长度（静态数组，无需malloc）
    // 假设题目中n的最大取值不超过100，因此定义大小为100的数组足够
    int wands[100], boxes[100];
    
    // 输入n根魔杖的长度
    for (int i = 0; i < n; i++) {
        scanf("%d", &wands[i]);
    }
    
    // 输入n个盒子的长度
    for (int i = 0; i < n; i++) {
        scanf("%d", &boxes[i]);
    }
    
    // 对魔杖长度数组进行升序排序
    qsort(wands, n, sizeof(int), compare);
    // 对盒子长度数组进行升序排序
    qsort(boxes, n, sizeof(int), compare);
    
    // 标记是否所有魔杖都能放入对应盒子（1表示能，0表示不能）
    int canFit = 1;
    
    // 检查排序后每根魔杖是否能放入对应位置的盒子
    // 排序后最优匹配方式是：最短魔杖配最短盒子，次短配次短...
    // 若存在某根魔杖长度 > 对应盒子长度，则一定无法全部放入
    for (int i = 0; i < n; i++) {
        if (wands[i] > boxes[i]) {
            canFit = 0;  // 标记为不能
            break;       // 无需继续检查
        }
    }
    
    // 输出结果：能全部放入输出"DA"，否则输出"NE"
    if (canFit) {
        printf("DA\n");
    } else {
        printf("NE\n");
    }
    
    return 0;
}